The background description includes information that may be useful in understanding the present invention. It is not an admission that any of the information provided herein is prior art or relevant to the presently claimed invention, or that any publication specifically or implicitly referenced is prior art.
Computer environments have evolved from localized single user systems, to multi-user systems accessible by geographically distributed users. More recently, as cloud resources have become available, there has been a push to migrate one or more aspects (computer power, memory, storage, etc) of what were previously localized systems into the cloud. This can be done for many reasons, including efficient allocation of resources, cost-effective scalability, improved reliability, improved security, and greater accessibility.
There are numerous issues that arise in executing such migrations, including especially time and cost. For example, many applications are not well suited to a particular cloud environment because (a) cloud environments and their resources are available in a wide variety of configurations and may not pair well with the application's requirements, (b) legacy applications may fail to take advantage of the additional resources offered by a cloud environment and/or (c) applications run inefficiently in a cloud. Before migrating local software applications into a cloud environment, it is helpful to match and compare a local software application's hardware, software, network, and other application environment resources with the resources of any cloud environments considered for migration. The matching and comparing reveals compatibility, costs, and other software migration factors that can serve as a basis for the selection of a proper cloud environment or environments.
Thus, there is still a need for systems and methods that efficiently adapt legacy software applications so they may take advantage of the resources and benefits of a cloud environment, including migrating non-tenant aware software applications into applications that can be operated in tenant applications in a SaaS (Software as a Service) environment. One particular need is to effectively consider factors such as cost, scalability, performance, and security inherent in the use of cloud resources before the software application can be deployed on the cloud.